public static Node getIntersectionNode(Node headA, Node headB) {//有两个链表y型交叉，找到他们的第一个公共节点
        //1.求长度，走差值步
        Node pl = headA;
        int lenA = 0;
        Node ps = headB;
        int lenB = 0;
        while (pl != null) {
            lenA++;
            pl = pl.next;
        }
        while (ps != null) {
            lenB++;
            ps = ps.next;
        }
        pl = headA;
        ps = headB;
        int len = lenA - lenB;
        if (len < 0) {
            pl = headB;
            ps = headA;
            len = lenB - lenA;
        }
        while (len > 0) {
            pl = pl.next;
            len--;
        }
        //2.ps和pl一定是在同一个起跑线上
        while (ps != pl && pl != null && ps != null) {
            ps = ps.next;
            pl = pl.next;
        }
        if (pl == ps && pl != null) {
            return pl;
        }
        return null;
    }